package com.ruoyi.develop.invoice.entity;

import java.math.BigDecimal;
import java.util.List;



public class Invoice {

    /**
     * 文件绝对路径
     */
    private String fileAbsolutePath;

    /**
     * 发票标题
     */
    private String title;

    /**
     * 机器编号
     */
    private String machineNumber;

    /**
     * 发票代码
     */
    private String code;

    /**
     * 发票号码
     */
    private String number;

    /**
     * 开票日期
     */
    private String date;

    /**
     * 校验码
     */
    private String checksum;

    /**
     * 购买方名称
     */
    private String buyerName;

    /**
     * 购买方纳税人识别号
     */
    private String buyerCode;

    /**
     * 购买方地址
     */
    private String buyerAddress;

    /**
     * 购买方银行账号
     */
    private String buyerAccount;

    /**
     * 密码区
     */
    private String password;

    /**
     * 合计金额
     */
    private BigDecimal amount;

    /**
     * 合计税额
     */
    private BigDecimal taxAmount;

    /**
     * 价税合计大写字符串
     */
    private String totalAmountString;

    /**
     * 价税合计金额
     */
    private BigDecimal totalAmount;

    /**
     * 销售方名称
     */
    private String sellerName;

    /**
     * 销售方纳税人识别号
     */
    private String sellerCode;

    /**
     * 销售方地址
     */
    private String sellerAddress;

    /**
     * 销售方银行账号
     */
    private String sellerAccount;

    /**
     * 收款人
     */
    private String payee;

    /**
     * 复核人
     */
    private String reviewer;

    /**
     * 开票人
     */
    private String drawer;

    /**
     * 发票类型
     */
    private String type;

    /**
     * 发票明细列表
     */
    private List<Detail> detailList;
    private String content;        // 开票内容
    private String inReserve2;        // 发票类别 专票/普票


    public String getInReserve2() {
        return inReserve2;
    }

    public void setInReserve2(String inReserve2) {
        this.inReserve2 = inReserve2;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    /**
     * 获取文件绝对路径
     * @return 文件绝对路径
     */
    public String getFileAbsolutePath() {
        return fileAbsolutePath;
    }

    /**
     * 设置文件绝对路径
     * @param fileAbsolutePath 文件绝对路径
     */
    public void setFileAbsolutePath(String fileAbsolutePath) {
        this.fileAbsolutePath = fileAbsolutePath;
    }

    /**
     * 获取标题
     * @return 标题
     */
    public String getTitle() {
        return title;
    }

    /**
     * 设置标题
     * @param title 标题
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * 获取机器编号
     * @return 机器编号
     */
    public String getMachineNumber() {
        return machineNumber;
    }

    /**
     * 设置机器编号
     * @param machineNumber 机器编号
     */
    public void setMachineNumber(String machineNumber) {
        this.machineNumber = machineNumber;
    }

    /**
     * 获取发票代码
     * @return 发票代码
     */
    public String getCode() {
        return code;
    }

    /**
     * 设置发票代码
     * @param code 发票代码
     */
    public void setCode(String code) {
        this.code = code;
    }

    /**
     * 获取发票号码
     * @return 发票号码
     */
    public String getNumber() {
        return number;
    }

    /**
     * 设置发票号码
     * @param number 发票号码
     */
    public void setNumber(String number) {
        this.number = number;
    }

    /**
     * 获取日期
     * @return 日期
     */
    public String getDate() {
        return date;
    }

    /**
     * 设置日期
     * @param date 日期
     */
    public void setDate(String date) {
        this.date = date;
    }

    /**
     * 获取校验码
     * @return 校验码
     */
    public String getChecksum() {
        return checksum;
    }

    /**
     * 设置校验码
     * @param checksum 校验码
     */
    public void setChecksum(String checksum) {
        this.checksum = checksum;
    }

    /**
     * 获取购买方名称
     * @return 购买方名称
     */
    public String getBuyerName() {
        return buyerName;
    }

    /**
     * 设置购买方名称
     * @param buyerName 购买方名称
     */
    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    /**
     * 获取购买方发票代码
     * @return 购买方发票代码
     */
    public String getBuyerCode() {
        return buyerCode;
    }

    /**
     * 设置购买方发票代码
     * @param buyerCode 购买方发票代码
     */
    public void setBuyerCode(String buyerCode) {
        this.buyerCode = buyerCode;
    }

    /**
     * 获取购买方地址
     * @return 购买方地址
     */
    public String getBuyerAddress() {
        return buyerAddress;
    }

    /**
     * 设置购买方地址
     * @param buyerAddress 购买方地址
     */
    public void setBuyerAddress(String buyerAddress) {
        this.buyerAddress = buyerAddress;
    }

    /**
     * 获取购买方账号
     * @return 购买方账号
     */
    public String getBuyerAccount() {
        return buyerAccount;
    }

    /**
     * 设置购买方账号
     * @param buyerAccount 购买方账号
     */
    public void setBuyerAccount(String buyerAccount) {
        this.buyerAccount = buyerAccount;
    }

    /**
     * 获取密码
     * @return 密码
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置密码
     * @param password 密码
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取金额
     * @return 金额
     */
    public BigDecimal getAmount() {
        return amount;
    }

    /**
     * 设置金额
     * @param amount 金额
     */
    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    /**
     * 获取税额
     * @return 税额
     */
    public BigDecimal getTaxAmount() {
        return taxAmount;
    }

    /**
     * 设置税额
     * @param taxAmount 税额
     */
    public void setTaxAmount(BigDecimal taxAmount) {
        this.taxAmount = taxAmount;
    }

    /**
     * 获取价税合计（大写）
     * @return 价税合计（大写）
     */
    public String getTotalAmountString() {
        return totalAmountString;
    }

    /**
     * 设置价税合计（大写）
     * @param totalAmountString 价税合计（大写）
     */
    public void setTotalAmountString(String totalAmountString) {
        this.totalAmountString = totalAmountString;
    }

    /**
     * 获取价税合计
     * @return 价税合计
     */
    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    /**
     * 设置价税合计
     * @param totalAmount 价税合计
     */
    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    /**
     * 获取销售方名称
     * @return 销售方名称
     */
    public String getSellerName() {
        return sellerName;
    }

    /**
     * 设置销售方名称
     * @param sellerName 销售方名称
     */
    public void setSellerName(String sellerName) {
        this.sellerName = sellerName;
    }

    /**
     * 获取销售方发票代码
     * @return 销售方发票代码
     */
    public String getSellerCode() {
        return sellerCode;
    }

    /**
     * 设置销售方发票代码
     * @param sellerCode 销售方发票代码
     */
    public void setSellerCode(String sellerCode) {
        this.sellerCode = sellerCode;
    }

    /**
     * 获取卖方地址。
     * @return 卖方地址
     */
    public String getSellerAddress() {
        return sellerAddress;
    }

    /**
     * 设置卖方地址。
     * @param sellerAddress 要设置的卖方地址
     */
    public void setSellerAddress(String sellerAddress) {
        this.sellerAddress = sellerAddress;
    }

    /**
     * 获取卖方账号。
     * @return 卖方账号
     */
    public String getSellerAccount() {
        return sellerAccount;
    }

    /**
     * 设置卖方账号。
     * @param sellerAccount 要设置的卖方账号
     */
    public void setSellerAccount(String sellerAccount) {
        this.sellerAccount = sellerAccount;
    }

    /**
     * 获取收款人信息。
     * @return 收款人信息
     */
    public String getPayee() {
        return payee;
    }

    /**
     * 设置收款人信息。
     * @param payee 要设置的收款人信息
     */
    public void setPayee(String payee) {
        this.payee = payee;
    }

    /**
     * 获取复核人信息。
     * @return 复核人信息
     */
    public String getReviewer() {
        return reviewer;
    }

    /**
     * 设置复核人信息。
     * @param reviewer 要设置的复核人信息
     */
    public void setReviewer(String reviewer) {
        this.reviewer = reviewer;
    }

    /**
     * 获取开票人信息。
     * @return 开票人信息
     */
    public String getDrawer() {
        return drawer;
    }

    /**
     * 设置开票人信息。
     * @param drawer 要设置的开票人信息
     */
    public void setDrawer(String drawer) {
        this.drawer = drawer;
    }

    /**
     * 获取发票类型。
     * @return 发票类型
     */
    public String getType() {
        return type;
    }

    /**
     * 设置发票类型。
     * @param type 要设置的发票类型
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * 获取发票明细列表。
     * @return 发票明细列表
     */
    public List<Detail> getDetailList() {
        return detailList;
    }

    /**
     * 设置发票明细列表。
     * @param detailList 要设置的发票明细列表
     */
    public void setDetailList(List<Detail> detailList) {
        this.detailList = detailList;
    }


    @Override
    public String toString() {
        return "Invoice [title=" + title + ", machineNumber=" + machineNumber + ", code=" + code + ", number=" + number
                + ", date=" + date + ", checksum=" + checksum + ", buyerName=" + buyerName + ", buyerCode=" + buyerCode
                + ", buyerAddress=" + buyerAddress + ", buyerAccount=" + buyerAccount + ", password=" + password + ", amount="
                + amount + ", taxAmount=" + taxAmount + ", totalAmountString=" + totalAmountString + ", totalAmount="
                + totalAmount + ", sellerName=" + sellerName + ", sellerCode=" + sellerCode + ", sellerAddress=" + sellerAddress
                + ", sellerAccount=" + sellerAccount + ", payee=" + payee + ", reviewer=" + reviewer + ", drawer=" + drawer
                + ", type=" + type + ", detailList=" + detailList + "]";
    }
}
